![]() |
Swift Stories |
View in web browser |
Featured work: Fons Mans
#3 - Feb 7, 2025 Optimizing for joyWelcome to issue 3!We, as software crafters, often like to quantify things: downloads, sign-ups, average response time, app bundle size. Metrics give us confidence in certain aspects of our work, but they come at a cost—we often overlook other equally important factors in crafting great apps. One of those factors is joy. We believe there is an unquantifiable relationship between the joy a developer experiences while building an app and the quality of the final product. When people enjoy what they do, they feel inspired to push the limits of what’s possible and explore new ideas. Discussions about joy and happiness in software development are rare, but some frameworks, like Ruby on Rails, have made it a core principle. DHH describes how he drew inspiration from Ruby:
We believe that ideas have energy, and that energy can be eroded by the absence of joy. Picture this scenario: You’re a software crafter, and one day, you wake up with an exciting idea that you’d love to build into your app or your company’s product. You open your laptop, start working on it, and then—your project takes minutes to compile, only to fail. You just wanted to bring your idea to life, but instead, you spend hours debugging and wrestling with roadblocks. After all that frustration, your passion for the idea fades. Who knows? That idea might never see the light of day. As an industry, we should embrace optimizing for joy as one of our guiding principles. Doing so requires an ongoing dialogue with ourselves. If you pause for a moment, you can probably think of aspects of app development that aren’t enjoyable. Is it slow build times? Struggling to debug an obscure signing issue? Wrestling with a new programming language’s mental models? Debugging data races, for example, was far from enjoyable—until Apple introduced a better concurrency model. However, in doing so, they may have slightly reduced the joy of writing Swift by pushing the limits of our cognitive capacity. And that’s okay! The pursuit of joy is an infinite game. You improve in one area, compromise in another, and then shift focus again until you find a balance that works for everyone. Optimizing for joy might sound idealistic, but it could lead us to a better world. At first, it might feel frustrating because we’ll often rely on "gut feelings" rather than hard data. But many great ideas were born out of people having fun. And if you don’t believe me, read the book by Linus Torvalds. So, the next time you encounter something that diminishes your joy in development, think about all the great ideas that have faded because of similar frustrations. And take a moment to act as a champion for happiness in software crafting. Tools & sites
Worthy Five: Matt MassicotteMatt Massicotte has been developing for Apple platforms for longer than he likes to admit. He spends time working on open source projects ChimeHQ, writing, and consulting/training specifically for Swift concurrency.
Food for thought
|